/*
 * 文件名：ResultMapper.java
 * 版权：Copyright by AltonSoftware
 * 描述：
 * 修改人：Administrator
 * 修改时间：2015年1月17日
 * 修改内容：
 */

package com.etc.common.result;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import com.github.pagehelper.Page;


/**
 * 〈返回值映射类〉
 * 〈处理controller层的返回值〉
 * @author zhangliang
 * @version 2015年1月17日
 * @see ResultMapper
 * @param 
 * @since
 */

public class ResultMapper {
	
	/**
	 * Description: <br>
	 * 1、封装list的结果集<br>
	 * @param list 
	 * @param total
	 * @return success映射对象
	 * @see
	 */
	public static<T> Map<String, Object> convertSuccess(Collection<T> list,int total){
		Map<String, Object> returnMap=new HashMap<String, Object>();
		returnMap.put("success", true);
		returnMap.put("total", total);
		returnMap.put("root", list);
		return returnMap;
	}
	/**
	 * Description: 分页返回结果<br>
	 * @param page 分页之后的page对象
	 * @return 
	 * @see
	 */
	public static <T> Map<String,Object> convertPage(Page<T> page){
		Map<String, Object> returnMap = null;
		if(!page.isEmpty()){
			returnMap = convertSuccess(page.getResult(),(int)page.getTotal());
		}else{
			returnMap = convertFailure();
		}
		return returnMap;
	}
	/**
	 * Description:不带分页的查询 <br>
	 * @param list
	 * @return 
	 * @see
	 */
	public static<T> Map<String, Object> convertSuccess(Collection<T> list){
		Map<String, Object> returnMap=new HashMap<String, Object>();
		returnMap.put("success", true);
		returnMap.put("root", list);
		return returnMap;
	}
	/**
	 * Description: 成功返回一个对象<br>
	 * @param t
	 * @return 
	 * @see
	 */
	public static<T> Map<String, Object> convertSuccess(T t){
		Map<String, Object> returnMap=new HashMap<String, Object>();
		returnMap.put("success", true);
		returnMap.put("root", t);
		return returnMap;
	}
	/**
	 * Description:返回成功 <br>
	 * @return 
	 * @see
	 */
	public static Map<String, Object> convertSuccess(){
		Map<String, Object> returnMap=new HashMap<String, Object>();
		returnMap.put("success", true);
		return returnMap;
	}
	/**
	 * Description:返回失败 <br>
	 * @return 
	 * @see
	 */
	public static Map<String, Object> convertFailure(){
		Map<String, Object> returnMap=new HashMap<String, Object>();
		returnMap.put("success", false);
		return returnMap;
	}
	/**
	 * Description:返回失败 <br>
	 * @param exceptionMessage 错误信息
	 * @return 
	 * @see
	 */
	public static Map<String,Object> convertFailure(String exceptionMessage){
		Map<String, Object> returnMap=new HashMap<String, Object>();
		returnMap.put("success", false);
		returnMap.put("exceptionMessage", exceptionMessage);
		return returnMap;
	}
}
